import com.sun.javafx.scene.control.skin.VirtualFlow;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Stack;

/**
 * @author kaho
 * @since 2021/3/11
 */
public class _227_基本计算器_II {


    /**
     * 给你一个字符串表达式 s ，请你实现一个基本计算器来计算并返回它的值。
     *
     * 整数除法仅保留整数部分。
     * @param s
     * @return
     */
    public static int calculate(String s) {
        LinkedList<Integer> list = new LinkedList<>();
        int num = 0;
        char preSign = '+';
        for (int i = 0; i < s.length(); i++) {
            if (Character.isDigit(s.charAt(i))) {
                num = num*10 + s.charAt(i)-'0';
            }
            if (!Character.isDigit(s.charAt(i)) && s.charAt(i)!=' ' || i == s.length()-1) {
                switch (preSign){
                    case '+': list.push(num); break;
                    case '-': list.push(-num); break;
                    case '*': list.push(list.pop()* num);break;
                    case '/': list.push(list.pop()/ num);break;
                }
                preSign = s.charAt(i);
                num = 0;
            }
        }
        for (Integer integer : list) {
            num+=integer;
        }
        return num;
    }

    public static void main(String[] args) {
        int calculate = calculate("3+2*2");
    }
}
